/*
 * 08大数据排序.c
 *
 *  Created on: 2024年3月17日
 *      Author: HP
 */
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#define SIZE 1000

int main1008(){
	srand((size_t)time(NULL));
	FILE* fp = fopen("D:/zsl/数据.txt", "w");
	if(!fp){
		return -1;
	}
	for(int i=0; i<1000; i++){
		fprintf(fp, "%d\n", rand()%256);
	}
	fclose(fp);
	return 0;
}

int main100801(){
	FILE* fp1 = fopen("D:/zsl/数据.txt", "r");
	FILE* fp2 = fopen("D:/zsl/数据排序.txt", "w");
	if(!fp1 || !fp2){
		return -1;
	}
	// 冒泡排序
	int* arr = (int*)malloc(sizeof(int)*SIZE);
	for(int i=0; i<SIZE; i++){
		fscanf(fp1, "%d\n", &arr[i]);
	}
	bubbleSort2(arr, SIZE);
	for(int i=0; i<SIZE; i++){
		printf("%d\n", arr[i]);
		fprintf(fp2, "%d\n", arr[i]);
	}
	free(arr);
	fclose(fp1);
	fclose(fp2);
	return 0;
}

int main100802(){
	FILE* fp1 = fopen("D:/zsl/数据.txt", "r");
	FILE* fp2 = fopen("D:/zsl/数据排序.txt", "w");
	if(!fp1 || !fp2){
		return -1;
	}
	int* arr = (int*)malloc(sizeof(int)*256);
	memset(arr, 0, sizeof(int)*256);
	for(int i=0; i<SIZE; i++){
		int value;
		fscanf(fp1, "%d\n", &value);
		arr[value]++; // 将数据的个数放在对应的下标里面
	}
	for(int i=0; i<256; i++){
		for(int j=0; j<arr[i]; j++){
			fprintf(fp2, "%d\n", i);
		}
	}
	free(arr);
	fclose(fp1);
	fclose(fp2);
	return 0;
}
